package com.kmxd.ams.client.use.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.Data;

/**
 * 跨全宗/单位利用主表
 *
 * @author ZuoLG
 * @since 2022-08-02
 */
@Schema(description = "跨全宗/单位利用主表对象")
@Data
public class UseOrderAddDTO implements Serializable {

  private static final long serialVersionUID = 1L;

  /** 主键ID */
  @Schema(description = "主键ID")
  private Long id;

  /** 公司ID */
  @Schema(description = "公司ID")
  private Long comId;

  /** 全宗ID */
  @Schema(description = "全宗ID")
  private Long fondsId;

  /** 申请人ID */
  @Schema(description = "申请人ID")
  private Long userId;

  /** 所属部门ID */
  @Schema(description = "所属部门ID")
  private Long deptId;

  /** 所属部门名称 */
  @Schema(description = "所属部门名称")
  private String deptName;

  /** 主单id（拆单情况下） */
  @Schema(description = "主单id（拆单情况下）")
  private Long orderId;

  /** 流程业务id */
  @Schema(description = "流程业务id")
  private Long workFlowId;

  /** 申请标题 */
  @Schema(description = "申请标题")
  @NotBlank(message = "申请标题不能为空")
  @Size(max = 100, message = "申请标题长度不能超过100个字符")
  private String title;

  /** 申请人姓名 */
  @Schema(description = "申请人姓名")
  private String userName;

  /** 经办人电话 */
  @Schema(description = "经办人电话")
  private String userMobile;

  /** 利用目的 */
  @Schema(description = "利用目的")
  @NotNull(message = "利用目的不能为空")
  private Integer purpose;

  /** 利用档案数量 */
  @Schema(description = "利用档案数量")
  private Integer archNum;

  /** 利用期限 */
  @Schema(description = "利用期限")
  @NotBlank(message = "利用期限不能为空")
  @Size(max = 100, message = "利用期限长度不能超过100个字符")
  private String period;

  /** 实体利用类型 */
  @Schema(description = "利用类型")
  @NotNull(message = "利用类型不能为空")
  private Integer entType;

  /** 利用方式名称 */
  @Schema(description = "利用方式名称")
  private String entTypeName;

  /** 电子利用类型 */
  @Schema(description = "电子利用类型")
  private Integer eleType;

  /** 申请下载总次数 */
  @Schema(description = "申请下载总次数")
  private Integer downloadNumber;

  /** 已下载次数 */
  @Schema(description = "已下载次数")
  private Integer downloadCompletesysNumber;

  /** 借阅单类型 */
  @Schema(description = "借阅单类型")
  private Integer orderType;

  /** 利用人类型 */
  @Schema(description = "利用人类型")
  private Integer userType;

  /** 利用人信息 */
  @Schema(description = "利用人信息")
  private String userInfo;

  /** 联系方式 */
  @Schema(description = "联系方式")
  private String userContactWay;

  /** 利用单位 利用单位：针对系统外人员 */
  @Schema(description = "利用单位 利用单位：针对系统外人员")
  private String userUnit;

  /** 状态 */
  @Schema(description = "状态")
  private Integer status;

  /** 排序 */
  @Schema(description = "排序")
  private Integer sort;

  /** 创建人 */
  @Schema(description = "创建人")
  private Long createBy;

  /** 创建时间 */
  @Schema(description = "创建时间")
  private Date createTime;

  /** 更新人 */
  @Schema(description = "更新人")
  private Long updateBy;

  /** 更新时间 */
  @Schema(description = "更新时间")
  private Date updateTime;

  /** 删除状态(0-正常,1-已删除) */
  @Schema(description = "删除状态(0-正常,1-已删除)")
  private Long delFlag;

  @Schema(description = "备注")
  private String remarks;

  @Schema(description = "档案信息")
  private List<UseArchAddDTO> useArchList;

  @Schema(description = "角色id")
  private Long roleId;

  @Schema(description = "利用申请")
  private Boolean apply;

  @Schema(description = "需求描述")
  private String description;

  /** 操作人公司id */
  @Schema(description = "操作人公司id")
  private Long opComId;
  /** 全宗ID */
  @Schema(description = "操作人全宗id")
  private Long opFondsId;

  /** 申请人ID */
  @Schema(description = "操作人id")
  private Long opUserId;

  @Schema(description = "操作人")
  private String opUsername;

  /** 所属部门ID */
  @Schema(description = "操作部门id")
  private Long opDeptId;

  @Schema(description = "操作部门名称")
  private String opDeptName;

  @Schema(description = "操作时间")
  private Date opTime;

  @Schema(description = "操作备注")
  private String opRemarks;

  /** 到期时间 */
  @Schema(description = "到期时间")
  private Date expireTime;

  /** 在线浏览，有权限为1，没有权限为0 */
  @Schema(description = "在线浏览")
  private Boolean onlineBrowser;

  /** 原文浏览，有权限为1，没有权限为0 */
  @Schema(description = "原文浏览")
  private Boolean browserFile;

  /** 在线打印，有权限为1，没有权限为0 */
  @Schema(description = "在线打印")
  private Boolean onlinePrint;

  /** 下载，有权限为1，没有权限为0 */
  @Schema(description = "下载")
  private Boolean download;

  /** 下载源文件，有权限为1，没有权限为0 */
  @Schema(description = "下载源文件")
  private Boolean downloadSource;

  /** 摘录，有权限为1，没有权限为0 */
  @Schema(description = "摘录")
  private Boolean excerpt;

  /** 申请类型,1:摘抄复制,2:静电复印,3:拍摄复制,4:电子打印,5:电子拷贝 */
  @Schema(description = "申请类型,1:摘抄复制,2:静电复印,3:拍摄复制,4:电子打印,5:电子拷贝")
  private Integer applyType;

  /** 份数 */
  @Schema(description = "份数")
  private Integer applyWeight;

  /** 页数 */
  @Schema(description = "页数")
  private Integer applyPages;

  /** 状态:0未评价,1:已评价 */
  @Schema(description = "状态:0未评价,1:已评价")
  private Integer evalStatus;
}
